package com.oyz;


import org.apache.catalina.startup.Tomcat;


/**
 * 1、程序可以通过main方法启动,可以自动启动tomcat服务器
 * 2、可以自动创建加载DispatcherServlet组件到servletContext中
 * 3、可以自动通过@ComponentScan扫描Controller等组件
 * 4、Controller组件可以处理浏览器请求，返回响应结果
 */

public class SpringApplication {
    /**
     * tomcat
     */
    public static void run() {
        // 创建tomcat实例
        Tomcat tomcat = new Tomcat();
        // 设置tomcat端口
        tomcat.setPort(8080);
        try {
            // 设置项目的启动路径(完成一些配置,否则SpringServletContainerInitializer的onStartup方法可能不执行)
            tomcat.addWebapp("/","E:\\");
            // 启动tomcat容器
            tomcat.start();
            System.out.println("我已启动....");
            // 监听关闭端口,阻塞式。没有这一句，方法执行完就会关闭tomcat容器
            tomcat.getServer().await();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 类似于主启动类
     * @param args
     */
    public static void main(String[] args) {
        SpringApplication.run();
    }

}
